<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
  PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd">
<topic id="topic1" xml:lang="en"><title id="hf141670">pg_pltemplate</title><body><p>The <codeph>pg_pltemplate</codeph> system catalog table stores template information for
      procedural languages. A template for a language allows the language to be created in a
      particular database by a simple <codeph>CREATE LANGUAGE</codeph> command, with no need to
      specify implementation details. Unlike most system catalogs, <codeph>pg_pltemplate</codeph> is
      shared across all databases of Greenplum system: there is only
      one copy of <codeph>pg_pltemplate</codeph> per system, not one per database. This allows the
      information to be accessible in each database as it is needed. </p><p>There are not currently any commands that manipulate procedural language
templates; to change the built-in information, a superuser must modify
the table using ordinary <codeph>INSERT</codeph>, <codeph>DELETE</codeph>,
or <codeph>UPDATE</codeph> commands.</p><table id="hf150092"><title>pg_catalog.pg_pltemplate</title><tgroup cols="4"><colspec colnum="1" colname="col1" colwidth="131pt"/><colspec colnum="2" colname="col2" colwidth="86pt"/><colspec colnum="3" colname="col3" colwidth="85pt"/><colspec colnum="4" colname="col4" colwidth="147pt"/><thead><row><entry colname="col1">column</entry><entry colname="col2">type</entry><entry colname="col3">references</entry><entry colname="col4">description</entry></row></thead><tbody><row><entry colname="col1"><codeph>tmplname</codeph></entry><entry colname="col2">name</entry><entry colname="col3"/><entry colname="col4">Name of the language this template is for </entry></row><row><entry colname="col1"><codeph>tmpltrusted</codeph></entry><entry colname="col2">boolean</entry><entry colname="col3"/><entry colname="col4">True if language is considered trusted</entry></row>
          <row>
            <entry><codeph>tmpldbacreate</codeph></entry>
            <entry>boolean</entry>
            <entry/>
            <entry>True if language may be created by a database owner</entry>
          </row><row><entry colname="col1"><codeph>tmplhandler</codeph></entry><entry colname="col2">text</entry><entry colname="col3"/><entry colname="col4">Name of call handler function</entry></row>
          <row>
            <entry><codeph>tmplinline</codeph></entry>
            <entry>text</entry>
            <entry/>
            <entry>Name of anonymous-block handler function, or null if none</entry>
          </row><row><entry colname="col1"><codeph>tmplvalidator </codeph></entry><entry colname="col2">text</entry><entry colname="col3"/><entry colname="col4">Name of validator function, or NULL if none</entry></row><row><entry colname="col1"><codeph>tmpllibrary</codeph></entry><entry colname="col2">text</entry><entry colname="col3"/><entry colname="col4">Path of shared library that implements language</entry></row><row><entry colname="col1"><codeph>tmplacl</codeph></entry><entry colname="col2">aclitem[]</entry><entry colname="col3"/><entry colname="col4">Access privileges for template (not yet implemented).</entry></row></tbody></tgroup></table></body></topic>